package com.jinxin.platform.cdelecinspect.mapper;

import com.jinxin.platform.cdelecinspect.mapper.pojo.EleinspectTask;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * <b>[eleinspectTask]数据访问接口</b>
 * 
 * <p>
 * 注意:此文件自动生成-禁止手工修改
 * </p>
 * 
 * @author @blue
 * @date 2020-04-06
 */
@Mapper
public interface EleinspectTaskMapper {

	/**
	 * 插入一个数据持久化对象
	 *
	 * @param eleinspectTask
	 *            要插入的数据持久化对象
	 * @return 返回影响行数
	 */
	int insert(EleinspectTask eleinspectTask);

	/**
	 *
	 * @param taskList
	 * @return
	 */
	int insertBatch(@Param("taskList")List<EleinspectTask> taskList);

	/**
	 * 根据主键修改数据持久化对象
	 * 
	 * @param eleinspectTask
	 *            要修改的数据持久化对象
	 * @return int 返回影响行数
	 */
	int updateByKey(EleinspectTask eleinspectTask);

	int updateBatch(List<EleinspectTask> list);

	/**
	 * 根据主键查询并返回数据持久化对象
	 * 
	 * @return EleinspectTask
	 */
	EleinspectTask selectByKey(@Param(value = "id") String id);

	/**
	 * 根据唯一组合条件查询并返回数据持久化对象
	 * 
	 * @return EleinspectTask
	 */
	EleinspectTask selectOne(HashMap param);

	/**
	 * 根据param查询并返回数据持久化对象集合
	 * 
	 * @return List<EleinspectTask>
	 */
	List<EleinspectTask> list(HashMap param);

	/**
	 * 返回分页数据持久化对象集合
	 * 
	 * @return List<EleinspectTask>
	 */
	List<EleinspectTask> listPage(HashMap param);
    /**
     * 返回分页数据总数
     *
     * @return
     */
    int listPageCount(HashMap param);

	/**
	 * 根据主键删除数据持久化对象
	 *
	 * @return 影响行数
	 */
	int deleteByKey(@Param(value = "id") String id);

	int deleteRecordByTaskId(@Param(value = "taskId") String taskId);

	List<Map<String,Object>> listTasksPage(HashMap param);

	/**
	 * 查看任务
	 * @param param
	 * @return
	 */
	List listPointItemsResult(HashMap param);

	int listTasksPageCount(HashMap param);

	int deleteItemsByRecordIds(List<String> list);

	@Update("UPDATE CDELECINSPECT_TASK SET STATUS = 6 WHERE ID IN(SELECT id FROM CDELECINSPECT_TASK WHERE STATUS =0 AND LATEST_FINISH_TIME < sysdate)")
	int closeTaskWhenOutOfTime();
}
